package Client;

import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.Iterator;

import Carte.Trajet;
import Carte.Ville;
import Serveur.Serveur;
import Services.ServiceChoisis;

public class Client {
    private Serveur serveur;

    /**
     * Definition du constructeur normal
     * 
     * @param serveur
     */
    public Client(Serveur serveur) {
        this.serveur = serveur;
        System.out.println("Client lancé");
    }

    /**
     * Effectuer une reservation avec les parametres proposés.
     * 
     * @param IDTrajet
     * @param ListePassager
     * @param ListeServiceChoisi
     */
    public boolean Reserver(int IDTrajet, ArrayList<Integer> ListePassager, ArrayList<ServiceChoisis> ListeServiceChoisi){
    	return Reservation.Reserver(serveur, IDTrajet, ListePassager, ListeServiceChoisi);
    }

    public ArrayList<Trajet> Rechercher(Ville villeDepart,
            Ville villeArrive, GregorianCalendar dateDepart,
            GregorianCalendar dateArrive, int IdTransport, int nbPersonne){
    	
    	return Trajet.searchTrajet(serveur.getListeTrajet(), villeDepart, villeArrive, dateDepart, dateArrive, IdTransport, nbPersonne);
    }
    
    /**
     * Afficher toute la liste des trajet
     * @param ListeTrajet
     */
    public void AfficherListeTrajet(ArrayList<Trajet> ListeTrajet) {
        Iterator<Trajet> it = ListeTrajet.iterator();

        System.out.println("Liste des trajets filtr�s");
        System.out.println("*************************");

        while (it.hasNext()) {
            Trajet current = it.next();
            current.print();
        }

        System.out.println("*************************");
    }
}
